package org.enlongWu.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.enlongWu.mapper.RoleMapper;
import org.enlongWu.pojo.PageBean;
import org.enlongWu.pojo.Role;
import org.enlongWu.service.RoleService;
import org.enlongWu.utils.Md5Util;
import org.enlongWu.utils.ThreadLocalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Service
public class RoleServiceImpl implements RoleService {
    @Autowired
    private RoleMapper roleMapper;
    /**
     *  查找
     * @param roleStr
     * @return Role对象
     */
    @Override
    public Role findByRoleStr(String roleStr) {
        Role result = roleMapper.findByRolestr(roleStr);
        return result;
    }

    @Override
    public List<Role> findPrivilegeRoles(Role role) {
        return roleMapper.getPrivilegeRoles(role);
    }

    /**
     * 添加权限
     * @param role
     * @param roleName
     */
    @Override
    public void add(String role, String roleName) {
        //加密处理再存入
//        String md5String = Md5Util.getMD5String(password);
        //添加
        roleMapper.add(role,roleName);
    }

//    /**
//     * 更新用户信息.............待删除
//     * @param user
//     */
//    @Override
//    public void update(Role role) {
//        role.setUpdateTime(LocalDateTime.now());
//        roleMapper.update(role);
//    }

    /**
     * 用于分页查询文章列表
     * 首先创建一个PageBean对象，然后使用PageHelper插件进行分页查询。
     * 接着调用mapper接口的list方法获取文章列表，并将结果封装到PageBean对象中返回。
     * @param pageNum 当前页码
     * @param pageSize 每页显示的记录数
     * @return  用户的分页对象
     */
    @Override
    public PageBean<Role> list(Integer pageNum, Integer pageSize,String searchString) {
        //1.创建PageBean对象
        PageBean<Role> pb = new PageBean<>();

        //2.开启分页查询 PageHelper，有了这个，就会补加执行searh count()
        PageHelper.startPage(pageNum,pageSize);

        //3.调用mapper
        List<Role> as = roleMapper.list(searchString);//查询到的用户列表
        //Page中提供了方法,可以获取PageHelper分页查询后 得到的总记录条数和当前页数据
        Page<Role> p = (Page<Role>) as;

        //把数据填充到PageBean对象中
        pb.setTotal(p.getTotal());
        pb.setItems(p.getResult());
        return pb;
    }


}
